#include "dialogsystem.h"
#include "ui_dialogsystem.h"

#include <QProcess>
#include <QString>
#include <iostream>

#include "mainwindow.h"

Dialogsystem::Dialogsystem(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialogsystem)
{
    ui->setupUi(this);
}

Dialogsystem::~Dialogsystem()
{
    delete ui;
}

void Dialogsystem::on_pushButton_4_clicked()
{
    this->close();
}

void Dialogsystem::on_pushButton_3_clicked()
{
    //system("/opt/tslib/bin/ts_calibrate");//调用外部程序方法一;
#if 0
    QProcess proc;
    QStringList arguments;
//    QByteArray procOutput;
    arguments <<"-na";
    proc.start("netstat",arguments);
    //等待进程启动
    if(!proc.waitForStarted())
    {
        std::cout<<"启动失败\n";
//        return false;
    }
    //关闭写通道，因为没有向进程写数据，没用到
    proc.closeWriteChannel();
    //用于保存进程的控制台输出
    QByteArray procOutput;
    //等待进程结束
    while (false == proc.waitForFinished())
    {
        ;
    }
    //读取进程输出到控制台的数据
    procOutput = proc.readAll();
    //输出读到的数据
    std::cout << procOutput.data() <<std::endl;
    //返回
//    return EXIT_SUCCESS;
#endif
    QProcess proc;//调用系统程序 QProcess方法二，这个可以监控程序是否运行完
    proc.start("/opt/tslib/bin/ts_calibrate");
    if(!proc.waitForStarted())
    {
        std::cout<<"启动失败\n";
    }
    //关闭写通道，因为没有向进程写数据，没用到
    proc.closeWriteChannel();
    //用于保存进程的控制台输出
    QByteArray procOutput;
    //等待进程结束
    while (true == proc.waitForFinished())
    {
 //     this->close();
        this->update();
    }
   //读取进程输出到控制台的数据
   procOutput = proc.readAll();
   //输出读到的数据
   std::cout << procOutput.data() <<std::endl;
   //返回
}
